/*
1 输入框绑定 值改变事件 input事件
  1 获取到输入框的值
  2 合法性判断
  3 检验通过 把输入框的值 发送到后台
  4 返回的数据打印到页面上
2 防抖 （防止抖动） 定时器  节流
  0 防抖 一般 输入框中 防止重复输入 重复发送请求
  1 节流 一般是用在页面下拉和上拉
  1 定义全局的定时器id
 */
import {request} from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
import {debounce} from "../../utils/common";

Page({
    data: {
        goods: [],
        isFocus: false,
        keyword: ''
    },

    //输入框值改变事件
    handleInput(e) {
        const {value} = e.detail;
        if (!value.trim()) {
            this.setData({goods: [], isFocus: false, keyword: value});
            return;
        }
        this.setData({isFocus: true});
        const search = debounce(this.handleSearch, 1000);
        search(value);
    },

    async handleSearch(query) {
        const res = await request({url: '/goods/qsearch', data: {query}});
        this.setData({goods: res});
    },

    handleReset() {
        this.setData({goods: [], isFocus: false, keyword: ''});
    }
})
